import api from './api'; // 假设你的 api 实例已经正确配置

// 获取所有资源，支持查询参数
export const fetchCourseResources = async (queryParams = {}) => { //
  const res = await api.get(`/api/resources`, { params: queryParams }); //
  return res.data; //
};

// 删除资源
export const deleteCourseResource = async (resourceId) => {
  const res = await api.delete(`/api/resources/${resourceId}`); // 确保与后端 @DeleteMapping("/{id}") 匹配
  return res.data;
};

// 上传资源
export const uploadResource = async (formData) => {
  const res = await api.post('/api/resources/upload', formData, {
    headers: {
      'Content-Type': 'multipart/form-data', // 这一行是关键
    },
  });
  return res.data;
};

// 资源文件访问地址
export const getDownloadUrl = (filename) => {
  return `http://localhost:8080/api/resources/files/${filename}`; // 确保与后端 @GetMapping("/files/{filename:.+}") 匹配
};

// 获取资源章节（如果不需要，可以删除）
export const fetchResourceSections = async (resourceId) => {
  const res = await api.get(`/api/resources/${resourceId}/sections`);
  return res.data;
};


const resourceService = {
  /**
   * 上传课程资源文件进行智能分析
   * @param {File} file 用户上传的文档文件
   * @param {Function} onUploadProgress 上传进度回调函数
   * @returns {Promise<object>} 包含分析结果的对象
   */
  async analyzeResource(file, onUploadProgress) {
    const formData = new FormData();
    formData.append('file', file);

    try {
      const response = await api.post('/api/resources/analyze', formData, {
        headers: {
          'Content-Type': 'multipart/form-data',
        },
        onUploadProgress,
      });
      return response.data;
    } catch (error) {
      console.error('[ResourceService] 文件分析失败:', error);
      const errorMessage = error.response?.data?.error || error.message || '请求服务器失败';
      throw new Error(errorMessage);
    }
  },
};

export default resourceService;
// import api from './api';

// const resourceService = {
//   /**
//    * 上传课程资源文件进行智能分析
//    * @param {File} file 用户上传的文档文件
//    * @param {Function} onUploadProgress 上传进度回调函数
//    * @returns {Promise<object>} 包含分析结果的对象
//    */
//   async analyzeResource(file, onUploadProgress) {
//     const formData = new FormData();
//     formData.append('file', file);

//     try {
//       const response = await api.post('/api/resources/analyze', formData, {
//         headers: {
//           'Content-Type': 'multipart/form-data',
//         },
//         onUploadProgress,
//       });
//       return response.data;
//     } catch (error) {
//       console.error('[ResourceService] 文件分析失败:', error);
//       const errorMessage = error.response?.data?.error || error.message || '请求服务器失败';
//       throw new Error(errorMessage);
//     }
//   },
// };

// export default resourceService;